import os
import random
import argparse

def generate_random_file(file_path, size_in_mb):
    # 生成随机内容
    size_in_bytes = size_in_mb * 1024 * 1024
    random_content = os.urandom(size_in_bytes)
    
    # 写入文件
    with open(file_path, 'wb') as f:
        f.write(random_content)

def generate_multiple_files(directory, num_files, min_size_mb, max_size_mb):
    # 确保目录存在
    if not os.path.exists(directory):
        os.makedirs(directory)
    
    for i in range(num_files):
        # 生成文件名
        file_name = f"file_{i+1}.bin"
        file_path = os.path.join(directory, file_name)
        
        # 生成随机大小
        file_size_mb = random.randint(min_size_mb, max_size_mb)
        
        # 生成文件
        generate_random_file(file_path, file_size_mb)
        print(f"Generated {file_path} with size {file_size_mb}MB")

if __name__ == "__main__":
    # 设置命令行参数解析
    parser = argparse.ArgumentParser(description="生成多个随机大小的文件")
    parser.add_argument("output_directory", type=str, default="/root/mnt/tmp/",help="输出文件的目录")
    parser.add_argument("--num_files", type=int, default=16000, help="文件数量，默认为16000")
    parser.add_argument("--min_size_mb", type=int, default=3, help="文件最小大小（MB），默认为3")
    parser.add_argument("--max_size_mb", type=int, default=4, help="文件最大大小（MB），默认为4")
    args = parser.parse_args()

    # 生成文件
    generate_multiple_files(args.output_directory, args.num_files, args.min_size_mb, args.max_size_mb)